package com.xiyuan.smartutils.control;

/**
 * 事件处理器，通过冒泡方式处理，以支持一个事件多个事件处理器顺序执行
 *
 * @version v1.0.0 @author lgz 2017-9-21 新建与整理
 */
public interface Eventor<E>
{
    /**
     * 显性提供事件类接口，用于事件注册到控制器中
     * 
     * @return 返回事件类
     */
    public Class<E> clazz();
    
    /** 
     * 事件处理器接口 
     * 
     * @param event 事件
     * @return      返加处理状态，=true表示处理完成，向上冒泡，=false表示处理终止，停止冒泡
     */
    public boolean process(E event);
}
